home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / 68hc11 / smallc11.arc / CC1.C next >
Text File  |  1988-07-04  |  3KB  |  101 lines

  1. /*
  2. ** Small-C Compiler Version 2.0
  3. **
  4. ** COPYRIGHT 1982 J. E. HENDRIX
  5. **
  6. **    PC version    Feb 11 1987    Jrd
  7. **
  8. **    TURBO-C Version july 4 1988     hm
  9. **
  10. **    - input, input2, output, listfp converted to FILE *ptr
  11. **    - const converted to const1
  12. ** Part 1
  13. */
  14.  
  15. #include    <stdio.h>
  16. #include    "ccdef.c"
  17.  
  18. /*
  19. ** miscellaneous storage
  20. */
  21. char
  22.   alarm,    /* audible alarm on errors? */
  23.   monitor,  /* monitor function headers? */
  24.   pause,    /* pause for operator on errors? */
  25.   stage[STAGESIZE],
  26.   symtab[SYMTBSZ],
  27.   litq[LITABSZ],
  28.   macq[MACQSIZE],
  29.   pline[LINESIZE],
  30.   mline[LINESIZE],
  31.   swq[SWTABSZ],
  32.  *line,     /* points to pline or mline */
  33.  *lptr,     /* ptr to either */
  34.  *glbptr,   /* ptrs to next entries */
  35.  *locptr,   /* ptr to next local symbol */
  36.  *stagenext,/* next addr in stage */
  37.  *stagelast,/* last addr in stage */
  38.   quote[2], /* literal string for '"' */
  39.  *cptr,     /* work ptrs to any char buffer */
  40.  *cptr2,
  41.  *cptr3,
  42.   msname[NAMESIZE], /* macro symbol name array */
  43.   ssname[NAMESIZE]; /* static symbol name array */
  44.  
  45. int
  46.   reperr,    /* report errors in compile -hm */
  47.   nogo,     /* > 0 disables goto statements */
  48.   noloc,    /* > 0 disables block locals */
  49.   (*op[16])(),     /* function addresses of binary operators */
  50.   (*op2[16])(),  /* same for unsigned operators */
  51.   opindex,  /* index to matched operator */
  52.   opsize,   /* size of operator in bytes */
  53.   swactive, /* true inside a switch */
  54.   swdefault,/* default label #, else 0 */
  55.  *swnext,   /* address of next entry */
  56.  *swend,    /* address of last table entry */
  57.   wq[WQTABSZ],
  58.   argcs,    /* static argc */
  59.  *argvs,    /* static argv */
  60.  *wqptr,    /* ptr to next entry */
  61.   litptr,   /* ptr to next entry */
  62.   macptr,   /* macro buffer index */
  63.   mack,     /* variable k for findmac routine */
  64.   pptr,     /* ptr to parsing buffer */
  65. (*oper)(),  /* address of binary operator function */
  66.   ch,        /* current character of line being scanned */
  67.   nch,        /* next character of line being scanned */
  68.   declared, /* # of local bytes declared, else -1 when done */
  69.   iflevel,  /* #if... nest level */
  70.   skiplevel,/* level at which #if... skipping started */
  71.   func1,    /* true for first function */
  72.   nxtlab,   /* next avail label # */
  73.   litlab,   /* label # assigned to literal pool */
  74.   beglab,   /* beginning label -- first function */
  75.   csp,        /* compiler relative stk ptr */
  76.   argstk,   /* function arg sp */
  77.   argtop,
  78.   ncmp,     /* # open compound statements */
  79.   errflag,  /* non-zero after 1st error in statement */
  80.   eof,        /* set non-zero on final input eof */
  81.   files,    /* non-zero if file list specified on cmd line */
  82.   filearg,  /* cur file arg index */
  83.   glbflag,  /* non-zero if internal globals */
  84.   ctext,    /* non-zero to intermix c-source */
  85.   ccode,    /* non-zero while parsing c-code */
  86.         /* zero when passing assembly code */
  87.   lastst,   /* last executed statement type */
  88.  *iptr;     /* work ptr to any int buffer */
  89.  
  90. FILE
  91.   *input,    /* fd # for input file */
  92.   *input2,   /* fd # for "include" file */
  93.   *output,   /* fd # for output file */
  94.   *listfp;   /* file pointer to list device */
  95.  
  96. int showcode;    /* show c-code in assembler file -hm */
  97.  
  98. #include "cc11.c"
  99. #include "cc12.c"
  100. #include "cc13.c"
  101.